package com.wjx.demo.condition

fun main(args: Array<String>) {
    var arr = arrayOf(1, 2, 4)
    for (a in arr) println(a)

    for (a1 in arr.indices) println(a1)  //0 ,1,2

    for ((index, value) in arr.withIndex()) {
        println("index:$index ,value:$value")
    }
    var i = 0
    while (i < 3) {
        print(i)
        i++
    }

    do {
        println(i)
        i++
    } while (i < 5)

    for (i in 1..10) {
        if (i == 3) {
            continue
        }
        print(i)
        if (i > 6) break
    }
    println()

    for (i in 1..10) {
        loop1@ for (j in 1..3) {
            print(j)
            if (i == 2) {
                break@loop1
            }
        }
    }

    println()
    // return 直接从最外层函数调用返回
    fun foo2() {
        arr.forEach {
            if (it == 4) return
            print(it)
        }
        println("s")
    }
    foo2()
    println()

    //标签
    fun foo() {
        arr.forEach lit@ {
            if (it == 4) return@lit
            print(it)
        }
        println("s")
    }
    foo()
    println()
    //通常情况下使用隐式标签更方便。 该标签与接受该 lambda 的函数同名。
    fun foo1() {
        arr.forEach {
            if (it == 4) return@forEach
            print(it)
        }
        println("s")
    }
    foo1()
    println()


}